//
//  SKYDevice.h
//  SkyonSDK
//
//  Created by macbook on 2018/5/6.
//  Copyright © 2018年 Skyon. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "SKYGlobalMacros.h"
#import <UIKit/UIKit.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>
#import <CoreLocation/CoreLocation.h>
#import <CoreMotion/CoreMotion.h>
#import <CoreBluetooth/CoreBluetooth.h>

@interface SKYDevice : NSObject <CLLocationManagerDelegate, CBCentralManagerDelegate>

// 定位管理器
@property (nonatomic,strong) CLLocationManager *manager;
// 海拔高度
@property (nonatomic,assign) float altitude;
// 垂直精度
@property (nonatomic,assign) float verticalAccuracy;
// 经度
@property (nonatomic,assign) double latitude;
// 纬度
@property (nonatomic,assign) double longitude;

// 蓝牙管理器
@property (nonatomic,strong) CBCentralManager *blueManager;
// 是否支持蓝牙
@property (nonatomic,assign,getter=isSupportBlueCentralManager) BOOL supportBlueCentralManager;

// wifi列表
@property (nonatomic,strong) NSMutableArray *wifiList;

// 共享实例
SKY_AS_SINGLETON(SKYDevice)

// 设备名称
+ (NSString *)getDeviceName;

// 设备默认语言
+ (NSString *)getDefaultLanguage;

// 设备型号
+ (NSString *)getDeviceModel;

// 操作系统平台
+ (NSString *)getSystemName;

// 运营商类型
+ (NSString *)getCarrierName;

// 操作系统版本
+ (NSString *)getSystemVersion;

// 获取内核版本信息
+ (NSString *)getCoreInfo;

// 国际移动用户识别码号码
+ (NSString *)getMCCAndMNC;

// 分辨率
+ (NSString *)getResolution;

// 开机时间，单位毫秒
+ (NSString *)getElapseBootTime;

// 系统日期和时间
+ (NSString *)getSystemDateTime;

// 屏幕尺寸
+ (NSString *)getScreenSize;

// 屏幕密度DPI
+ (NSString *)getDPI;

// 屏幕密度PPI
+ (NSString *)getPPI;

// 是否支持GPS
+ (BOOL)isLocationEnabled;

// 开始定位
+ (void)startLocation;

// 停止定位
+ (void)stopLocation;

// 获取经纬度信息
+ (NSString *)getLocationInfo;

// 获取海拔高度
+ (NSString *)getAltitudeInfo;

// 是否是移动设备
+ (BOOL)isMobile;

// 获取内存
+ (NSString *)getSystemMemory;

// 获取磁盘容量
+ (NSString *)getDiskSize;

// 获取可用磁盘容量
+ (NSString *)getAvailableDiskSize;

// 获取已用磁盘容量
+ (NSString *)getUsedDiskSize;

// 获取广告标识符IDFA
+ (NSString *)getIDFA;

// 是否越狱
+ (BOOL)isJailbroken;

// 是否支持蓝牙
+ (BOOL)isBluetoothSupported;

+ (NSString *)getBluetoothUUID;

// 设备唯一标识
+ (NSString *)uniqueDeviceIdentifier;

// 此方法来设定keychain存储的service和account
+ (void)keychainPasswordService:(NSString *)service account:(NSString *)account;

//获取后台进程信息，iOS8以下返回nil
+ (NSArray *)runningProcesses;

// 扫描wifi列表
+ (BOOL)scanWifiList;

// 获取wifi列表
+ (NSArray *)getWifiList;

//是否连接wifi
+ (BOOL)isConnectWifi;

//wifi mac 地址
+ (NSString *)wifiMacAddress;

//获取ip地址，局域网ip, preferIPv4:是否是ipv4
+ (NSString *)getLocalIPAddress:(BOOL)preferIPv4;

//是否支持陀螺仪
+ (BOOL)isGyroscopeAvailable;

//是否支持NFC
+ (BOOL)isNFCAvailable;

//cpu核心数
+ (NSUInteger)getCPUProcessorCount;

//CPU占用率
+ (float)getCPUUsage;

//获取CPU类型（型号）
+ (NSString *)getCPUType;

//cpu架构信息
+ (NSString *)cpuArchitectureDescription;

@end
